/*
 * Temperature.h
 * This file is part of WX
 *
 * Copyright 2010-2013 Jason Coulls. All Rights Reserved.
 *
 * is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 2 of the License.
 *
 * is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with . If not, see <http://www.gnu.org/licenses>.
 */

#import <Foundation/Foundation.h>

/**
 An enumeration of temperature scales
 */
typedef enum {
    kTEMPSCALECELSIUS,          /**< this temperature reading is in degrees C */
    kTEMPSCALEFAHRENHEIT,       /**< this temperature reading is in degrees F */
    KTEMPSCALEKELVIN            /**< this temperature reading is in kelvin */
} TemperatureScale;

/**
 This class represents a temperature.
 */
@interface Temperature : NSObject

/**
 The temperature reading.
 */
@property   double    reading;

/**
 The scale this reading is represented in.
 */
@property (nonatomic)           TemperatureScale       temperatureScale;

/**
 Converts the current reading to its Celsius value.
 @returns returns the temperature in Celsius.
 */
-(double) celsiusValue;

/**
 Converts the current reading to its Fahrenheit value.
 @returns returns the temperature in Fahrenheit.
 */
-(double) fahrenheitValue;

/**
 Converts the current reading to its kelvin value.
 @returns returns the temperature in kelvin.
 */
-(double) kelvinValue;

@end
